Do Java stream intermediate operations iterate the stream multiple times